約 6,594,188 件
https://w.atwiki.jp/wnt0/pages/39.html
状態における振る舞いをそれぞれのクラスとして分割し、局所化する 頻繁に状態が変わるような場合には、オブジェクトの生成処理のオーバーヘッドが大きくなる 最初に全ての状態オブジェクトを生成して、オブジェクトの切り替えを行う http //en.wikipedia.org/wiki/State_pattern のJavaコードをC++にした #include iostream #include string #include ctype.h using namespace std; // prototypeclass StateContext; // State Classclass State {public virtual void writeName(StateContext *stateContext, string name) = 0;}; // ConcreteState Classclass StateA public State {public virtual void writeName(StateContext *stateContext, string name);}; // ConcreteState Classclass StateB public State {public StateB() { count = 0; } virtual void writeName(StateContext *stateContext, string name);private int count;}; // Context Classclass StateContext {public StateContext() { myState = NULL; setState(new StateA()); } void setState(State *newState) { if (myState != NULL) delete myState; myState = newState; } void writeName(const string name) { myState- writeName(this, name); }private State *myState;}; // StateA writeNamevoid StateA writeName(StateContext *stateContext, string name) { string iterator it = name.begin(); while (it != name.end()) { *it = tolower(*it); ++it; } cout name endl; stateContext- setState(new StateB());} // StateB writeNamevoid StateB writeName(StateContext *stateContext, string name) { string iterator it = name.begin(); while (it != name.end()) { *it = toupper(*it); ++it; } cout name endl; if (++count 1) { stateContext- setState(new StateA()); }} // clientint main() { StateContext *sc = new StateContext(); sc- writeName("Monday"); sc- writeName("Tuesday"); sc- writeName("Wednesday"); sc- writeName("Thursday"); sc- writeName("Saturday"); sc- writeName("Sunday"); delete sc; return 0;} 出力 monday TUESDAY WEDNESDAY thursday SATURDAY SUNDAY http //www.dofactory.com/Patterns/PatternState.aspx のC#コードをC++にした Structural example #include iostream #include typeinfo using namespace std; // prototypeclass Context; // The State abstract classclass State {public virtual void Handle(Context *context) = 0;}; // The Context classclass Context {public // constructor Context(State *state) { _state = NULL; SetState(state); } virtual ~Context() { delete _state; } // Get or Set the state State* GetState() { return _state; } void SetState(State *state) { if (_state != NULL) delete _state; _state = state; cout "State " typeid(*state).name() endl; } // Request void Request() { _state- Handle(this); }private State *_state;}; // A ConcreteState classclass ConcreteStateA public State {public virtual void Handle(Context *context);}; // A ConcreteState classclass ConcreteStateB public State {public virtual void Handle(Context *context);}; // ConcreteStateA Handlevoid ConcreteStateA Handle(Context *context) { context- SetState(new ConcreteStateB());} // ConcreteStateB Handlevoid ConcreteStateB Handle(Context *context) { context- SetState(new ConcreteStateA());} // clientint main() { // Setup context in a state Context *c = new Context(new ConcreteStateA()); // Issue requests, which toggles state c- Request(); c- Request(); c- Request(); c- Request(); delete c; return 0;} 出力(g++の場合) State 14ConcreteStateA State 14ConcreteStateB State 14ConcreteStateA State 14ConcreteStateB State 14ConcreteStateA Real World example #include iostream #include string using namespace std; class Account; // The State abstract classclass State {protected Account *account; double balance; // 残高 double interest; double lowerLimit; double upperLimit; string state_name;public // Properties Account* getAccount(); void setAccount(Account *value); double getBalance() { return balance; } void setBalance(double value) { balance = value; } virtual void Deposit(double amount) = 0; virtual void Withdraw(double amount) = 0; virtual void PayInterest() = 0; string GetName() { return state_name; }}; // The Context classclass Account {private State *_state; string _owner;public // Constructor Account(const string owner); // Destructor virtual ~Account() { delete _state; } // Properties double getBalance() { return _state- getBalance(); } State* getState() { return _state; } void setState(State *state) { delete _state; _state = state; } void Deposit(double amount) { _state- Deposit(amount); cout "Deposited $" amount " ---" endl; cout " Balance = $" getBalance() endl; cout " Status = " getState()- GetName() endl; cout endl; } void Withdraw(double amount) { _state- Withdraw(amount); cout "Withdraw $" amount " ---" endl; cout " Balance = $" getBalance() endl; cout " Status = " getState()- GetName() endl; cout endl; } void PayInterest() { _state- PayInterest(); cout "Interest Paid ---" endl; cout " Balance = $" getBalance() endl; cout " Status = " getState()- GetName() endl; cout endl; }}; // A ConcreteState class// Red indicates that account is overdrawnclass RedState public State {private double _serviceFee;public // Constructor RedState(State *state) { balance = state- getBalance(); account = state- getAccount(); Initialize(); }private void Initialize() { // Should come from a datasource interest = 0.0; lowerLimit = -100.0; upperLimit = 0.0; _serviceFee = 15.00; state_name = "RedState"; }public virtual void Deposit(double amount) { balance += amount; StateChangeCheck(); } virtual void Withdraw(double amount) { amount -= _serviceFee; cout "No funds available for withdrawal!" endl; } virtual void PayInterest() { // No interest is paid }private void StateChangeCheck();}; // A ConcreteState class// Silver indicates a non-interest bearing stateclass SilverState public State {public // Overloaded constructors SilverState(State *state) { balance = state- getBalance(); account = state- getAccount(); Initialize(); } SilverState(double balance, Account *account) { this- balance = balance; this- account = account; Initialize(); }private void Initialize() { // Should come from a datasource interest = 0.0; lowerLimit = 0.0; upperLimit = 1000.0; state_name = "SilverState"; }public virtual void Deposit(double amount) { balance += amount; StateChangeCheck(); } virtual void Withdraw(double amount) { balance -= amount; StateChangeCheck(); } virtual void PayInterest() { balance += interest * balance; StateChangeCheck(); }private void StateChangeCheck();}; // A ConcreteState class// Gold indicates an interest bearing stateclass GoldState public State {public // Overloaded constructors GoldState(State *state) { balance = state- getBalance(); account = state- getAccount(); Initialize(); } GoldState(double balance, Account *account) { this- balance = balance; this- account = account; Initialize(); }private void Initialize() { // Should come from a database interest = 0.05; lowerLimit = 1000.0; upperLimit = 10000000.0; state_name = "GoldState"; }public virtual void Deposit(double amount) { balance += amount; StateChangeCheck(); } virtual void Withdraw(double amount) { balance -= amount; StateChangeCheck(); } void PayInterest() { balance += interest * balance; StateChangeCheck(); }private void StateChangeCheck();}; //// State ////Account* State getAccount() { return account;} void State setAccount(Account *value) { account = value;} //// Account ////Account Account(const string owner) { // New accounts are Silver by default _owner = owner; _state = new SilverState(0.0, this);} //// RedState ////void RedState StateChangeCheck() { if (balance upperLimit) { account- setState(new SilverState(this)); }} //// SilverState ////void SilverState StateChangeCheck() { if (balance lowerLimit) { account- setState(new RedState(this)); } else if (balance upperLimit) { account- setState(new GoldState(this)); }} //// GoldState ////void GoldState StateChangeCheck() { if (balance 0.0) { account- setState(new RedState(this)); } else if (balance lowerLimit) { account- setState(new SilverState(this)); }} ///////////// Entry point into console application.int main() { // Open a new account Account *account = new Account("Jim Johnson"); // Apply financial transactions account- Deposit(500.0); // deposit 預け入れ account- Deposit(300.0); account- Deposit(550.0); account- PayInterest(); // interest 利子 account- Withdraw(2000.00); // withdraw 引き落とし account- Withdraw(1100.00); delete account; return 0;} 出力 Deposited $500 --- Balance = $500 Status = SilverState Deposited $300 --- Balance = $800 Status = SilverState Deposited $550 --- Balance = $1350 Status = GoldState Interest Paid --- Balance = $1417.5 Status = GoldState Withdraw $2000 --- Balance = $-582.5 Status = RedState No funds available for withdrawal! Withdraw $1100 --- Balance = $-582.5 Status = RedState 参考サイト デザインパターンを“喩え話”で分かり易く理解する http //www.netlaputa.ne.jp/~hijk/study/oo/designpattern.html TECHSCORE http //www.techscore.com/tech/DesignPattern/index.html/ Programing Place http //www.geocities.jp/ky_webid/index_old.html デザインパターンの骸骨たち http //www002.upp.so-net.ne.jp/ys_oota/mdp/ デザインパターンの使い方 State http //japan.internet.com/developer/20081224/26.html
https://w.atwiki.jp/project-amethyst/pages/2.html
CONTENTS トップページ このwikiをご覧下さった方へ ストーリー ポケモン図鑑 キャラクター メンバーページ リンク まとめサイト作成支援ツール plugin_fclock is not found. please feed back @wiki. 他のサービス 無料ホームページ作成 無料ブログ作成 2ch型掲示板レンタル 無料掲示板レンタル お絵かきレンタル 無料ソーシャルプロフ ここを編集
https://w.atwiki.jp/hotmilk005/pages/22.html
クラス変成 NSObject ↓ NSResponder ↓ NSView ↓ NSControl 複数のセグメントで作られた横ボタンを作る NSSegmentedControl *segment=[[NSSegmentedControl alloc]initWithFrame CGRectMake(100, 100, 400, 100)]; [segment setSegmentCount 3]; [segment setLabel @"1" forSegment 0]; [segment setLabel @"2" forSegment 1]; [segment setLabel @"3" forSegment 2]; [self.window.contentView addSubview segment];
https://w.atwiki.jp/sapoteki/pages/46.html
EXTRA定義使用するタグ アプリの起動(例として2chMate) ダイアラー起動 スケジュール登録 正規表現の置換とEXTRA定義の合わせ技 EXTRA定義 サポテキ有料版の機能としてデバッグモード時にエキストラ定義が使えるようになりました。(仕様が変わる可能性あり) この定義によってサポテキで発行するインテントをユーザー側が直接設定することができます。 使用するタグ インテントの基本情報 [ACTION] new Intent [CATEGORY] intent.addCategory [FLAG] intent.setFlags※数値で指定 [URI] intent.setData [TYPE] intent.setType インテントを明示的にする [COMPONENT_PACKAGE] intent.setClassName パッケージ名 [COMPONENT_CLASS] intent.setClassName クラス名 インテントにデータを持たせる [EXTRA_KEY] Intent.putExtra 送信するデータの名前 [EXTRA_STRING][EXTRA_BOOLEAN][EXTRA_BYTE][EXTRA_INTEGER][EXTRA_LONG][EXTRA_FLOAT][EXTRA_STRING_ARRAY][EXTRA_BOOLEAN_ARRAY][EXTRA_BYTE_ARRAY][EXTRA_INTEGER_ARRAY][EXTRA_LONG_ARRAY][EXTRA_FLOAT_ARRAY] Intent.putExtra 送信するデータの中身※ブラケット("[")を使う場合は("[[")とする [STRING_ARRAY_SEPALATOR] EXTRA_STRING_ARRAYとEXTRA_BYTE_ARRAYの区切り? アプリの起動(例として2chMate) 定義ボタン押すと2chMateが起動する [ACTION] android.intent.action.MAIN [CATEGORY] android.intent.category.LAUNCHER [FLAG] 270532608 [COMPONENT_PACKAGE] jp.co.airfront.android.a2chMate [COMPONENT_CLASS] jp.syoboi.a2chMate.activity.HomeActivity [END] ↓みたいのを↑みたく書き換えた Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); intent.setClassName("jp.co.airfront.android.a2chMate","jp.syoboi.a2chMate.activity.HomeActivity"); ダイアラー起動 サポテキで電話番号を入力して定義ボタン押すとダイアラー起動 [ACTION] android.intent.action.CALL [URI] tel %l0 [END] ↓みたいのを↑みたく書き換えた Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel %l0")); スケジュール登録 サポテキで1行目に「件名」、2行目に「場所」を入力して定義ボタン押すとスケジュール登録画面が起動 ※カレンダー周りは仕様がコロコロ変わってるらしく動作しないバージョンがあるかも? 3行目にスペース入れて起動すると終日予定の作成になる [ACTION] android.intent.action.EDIT [TYPE] vnd.android.cursor.item/event [EXTRA_KEY] title [EXTRA_STRING] %l0 [EXTRA_KEY] eventLocation [EXTRA_STRING] %l1 [EXTRA_KEY] allDay [EXTRA_BOOLEAN] %l2 [END] [PATTERN] (?s)(([^\n]*?\n){2})[ ]+?.* [REPLACE] $1true [TYPE] EXTRA [CCODE] NONE [END] ↓みたいのを↑みたく書き換えた Intent intent = new Intent(Intent.ACTION_EDIT); intent.setType("vnd.android.cursor.item/event"); intent.putExtra("title",%l0); intent.putExtra("eventLocation",%l1); intent.putExtra("allDay",%l2); 正規表現の置換とEXTRA定義の合わせ技 正規表現の置換でEXTRA定義を書くことで、サポテキでの入力内容を条件として発行するインテントを分岐させることができます 複数の定義を1つにまとめちゃうという裏ワザ(?)ですね サンプルとしてはてなブックマークアプリに対する3種類のインテント発行を1つの定義にまとめる サポテキの1行目未入力ならはてブアプリが起動 URL文字列ならはてブにブックマークを追加 検索文字列ならはてブのブックマークを検索 [TITLE] はてブ - 起動/追加/検索 [TEXT] %s [PATTERN] ^((?!https? //.)[^\n]+) ^(https? //[^\n]+) ^(\n+.*|)$ [REPLACE] [ACTION]\nandroid.intent.action.SEARCH\n[EXTRA_KEY]\nquery\n[EXTRA_STRING]\n$1\n[COMPONENT_PACKAGE]\ncom.hatena.android.bookmark\n[COMPONENT_CLASS]\ncom.hatena.android.bookmark.SearchableActivity\n[END] [ACTION]\nandroid.intent.action.SEND\n[URI]\n$1\n[COMPONENT_PACKAGE]\ncom.hatena.android.bookmark\n[COMPONENT_CLASS]\ncom.hatena.android.bookmark.PostActivity\n[END] [ACTION]\nandroid.intent.action.MAIN\n[COMPONENT_PACKAGE]\ncom.hatena.android.bookmark\n[COMPONENT_CLASS]\ncom.hatena.android.bookmark.MyBookmarkActivity\n[END] [TYPE] EXTRA [CCODE] NONE [END]
https://w.atwiki.jp/pqjp/pages/205.html
?xml version="1.0"? TextLibrary Text tag="[Conv_Q0Q4f_NAME1]" Darkhunter /Text Text tag="[Conv_Q0Q4f_0000]" You took the Sorcerer to the Red Tower? /Text Text tag="[Conv_Q0Q4f_0001]" You took the Sorcerer to the Red Tower? /Text Text tag="[Conv_Q0Q4f_0002]" You took the Sorcerer to the Red Tower? /Text Text tag="[Conv_Q0Q4f_0003]" You took the Sorcerer to the Red Tower? /Text Text tag="[Conv_Q0Q4f_0004]" The matter has been dealt with. Now we must head north. /Text Text tag="[Conv_Q0Q4f_0005]" The matter has been dealt with. Now we must head north. /Text Text tag="[Conv_Q0Q4f_0006]" The matter has been dealt with. Now we must head north. /Text Text tag="[Conv_Q0Q4f_0007]" The matter has been dealt with. Now we must head north. /Text Text tag="[Conv_Q0Q4f_0008]" As I promised, north it shall be. /Text Text tag="[Conv_Q0Q4f_0009]" As I promised, north it shall be. /Text Text tag="[Conv_Q0Q4f_0010]" As I promised, north it shall be. /Text Text tag="[Conv_Q0Q4f_0011]" As I promised, north it shall be. /Text /TextLibrary
https://w.atwiki.jp/clanflux/pages/11.html
Contents Top About Contact Recruit Record CSResult
https://w.atwiki.jp/icpctrain/pages/22.html
Regular Contest 13 Sep AbengerZ Match #01 AbengerZ Match #02 AbengerZ Match #03 AbengerZ Match #04 AbengerZ Match #05
https://w.atwiki.jp/touhoukashi/pages/459.html
【登録タグ D Hypothetical Box Act.2 Unlucky Morpheus 上海紅茶館 ~ Chinese Tea 天外冬黄 曲】 【注意】 現在、このページはJavaScriptの利用が一時制限されています。この表示状態ではトラック情報が正しく表示されません。 この問題は、以下のいずれかが原因となっています。 ページがAMP表示となっている ウィキ内検索からページを表示している これを解決するには、こちらをクリックし、ページを通常表示にしてください。 /** General styling **/ @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight 350; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/10/NotoSansCJKjp-DemiLight.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/9/NotoSansCJKjp-DemiLight.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/8/NotoSansCJKjp-DemiLight.ttf) format( truetype ); } @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight bold; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/13/NotoSansCJKjp-Medium.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/12/NotoSansCJKjp-Medium.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/11/NotoSansCJKjp-Medium.ttf) format( truetype ); } rt { font-family Arial, Verdana, Helvetica, sans-serif; } /** Main table styling **/ #trackinfo, #lyrics { font-family Noto Sans JP , sans-serif; font-weight 350; } .track_number { font-family Rockwell; font-weight bold; } .track_number after { content . ; } #track_args, .amp_text { display none; } #trackinfo { position relative; float right; margin 0 0 1em 1em; padding 0.3em; width 320px; border-collapse separate; border-radius 5px; border-spacing 0; background-color #F9F9F9; font-size 90%; line-height 1.4em; } #trackinfo th { white-space nowrap; } #trackinfo th, #trackinfo td { border none !important; } #trackinfo thead th { background-color #D8D8D8; box-shadow 0 -3px #F9F9F9 inset; padding 4px 2.5em 7px; white-space normal; font-size 120%; text-align center; } .trackrow { background-color #F0F0F0; box-shadow 0 2px #F9F9F9 inset, 0 -2px #F9F9F9 inset; } #trackinfo td ul { margin 0; padding 0; list-style none; } #trackinfo li { line-height 16px; } #trackinfo li nth-of-type(n+2) { margin-top 6px; } #trackinfo dl { margin 0; } #trackinfo dt { font-size small; font-weight bold; } #trackinfo dd { margin-left 1.2em; } #trackinfo dd + dt { margin-top .5em; } #trackinfo_help { position absolute; top 3px; right 8px; font-size 80%; } /** Media styling **/ #trackinfo .media th { background-color #D8D8D8; padding 4px 0; font-size 95%; text-align center; } .media td { padding 0 2px; } .media iframe nth-of-type(n+2) { margin-top 0.3em; } .youtube + .nicovideo, .youtube + .soundcloud, .nicovideo + .soundcloud { margin-top 0.75em; } .media_section { display flex; align-items center; text-align center; } .media_section before, .media_section after { display block; flex-grow 1; content ; height 1px; } .media_section before { margin-right 0.5em; background linear-gradient(-90deg, #888, transparent); } .media_section after { margin-left 0.5em; background linear-gradient(90deg, #888, transparent); } .media_notice { color firebrick; font-size 77.5%; } /** Around track styling **/ .next-track { float right; } /** Infomation styling **/ #trackinfo .info_header th { padding .3em .5em; background-color #D8D8D8; font-size 95%; } #trackinfo .infomation_show_btn_wrapper { float right; font-size 12px; user-select none; } #trackinfo .infomation_show_btn { cursor pointer; } #trackinfo .info_content td { padding 0 0 0 5px; height 0; transition .3s; } #trackinfo .info_content ul { padding 0; margin 0; max-height 0; list-style initial; transition .3s; } #trackinfo .info_content li { opacity 0; visibility hidden; margin 0 0 0 1.5em; transition .3s, opacity .2s; } #trackinfo .info_content.infomation_show td { padding 5px; height 100%; } #trackinfo .info_content.infomation_show ul { padding 5px 0; max-height 50em; } #trackinfo .info_content.infomation_show li { opacity 1; visibility visible; } #trackinfo .info_content.infomation_show li nth-of-type(n+2) { margin-top 10px; } /** Lyrics styling **/ #lyrics { font-size 1.06em; line-height 1.6em; } .not_in_card, .inaudible { display inline; position relative; } .not_in_card { border-bottom dashed 1px #D0D0D0; } .tooltip { display flex; visibility hidden; position absolute; top -42.5px; left 0; width 275px; min-height 20px; max-height 100px; padding 10px; border-radius 5px; background-color #555; align-items center; color #FFF; font-size 85%; line-height 20px; text-align center; white-space nowrap; opacity 0; transition 0.7s; -webkit-user-select none; -moz-user-select none; -ms-user-select none; user-select none; } .inaudible .tooltip { top -68.5px; } span hover + .tooltip { visibility visible; top -47.5px; opacity 0.8; transition 0.3s; } .inaudible span hover + .tooltip { top -73.5px; } .not_in_card span.hide { top -42.5px; opacity 0; transition 0.7s; } .inaudible .img { display inline-block; width 3.45em; height 1.25em; margin-right 4px; margin-bottom -3.5px; margin-left 4px; background-image url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2971/7/Inaudible.png); background-size contain; background-repeat no-repeat; } .not_in_card after, .inaudible .img after { content ; visibility hidden; position absolute; top -8.5px; left 42.5%; border-width 5px; border-style solid; border-color #555 transparent transparent transparent; opacity 0; transition 0.7s; } .not_in_card hover after, .inaudible .img hover after { content ; visibility visible; top -13.5px; left 42.5%; opacity 0.8; transition 0.3s; } .not_in_card after { top -2.5px; left 50%; } .not_in_card hover after { top -7.5px; left 50%; } .not_in_card.hide after { visibility hidden; top -2.5px; opacity 0; transition 0.7s; } /** For mobile device styling **/ .uk-overflow-container { display inline; } #trackinfo.mobile { display table; float none; width 100%; margin auto; margin-bottom 1em; } #trackinfo.mobile th { text-transform none; } #trackinfo.mobile tbody tr not(.media) th { text-align left; background-color unset; } #trackinfo.mobile td { white-space normal; } document.addEventListener( DOMContentLoaded , function() { use strict ; const headers = { title アルバム別曲名 , album アルバム , circle サークル , vocal Vocal , lyric Lyric , chorus Chorus , narrator Narration , rap Rap , voice Voice , whistle Whistle (口笛) , translate Translation (翻訳) , arrange Arrange , artist Artist , bass Bass , cajon Cajon (カホン) , drum Drum , guitar Guitar , keyboard Keyboard , mc MC , mix Mix , piano Piano , sax Sax , strings Strings , synthesizer Synthesizer , trumpet Trumpet , violin Violin , original 原曲 , image_song イメージ曲 }; const rPagename = /(?=^|.*
https://w.atwiki.jp/aloevera/pages/10.html
Welcome! today - yesterday - all - search 検索 Contents ■ FF 7 ├ Chart ├ Character ├ Item └ Materia ■ FF 8 ├ Chart ├ Character ├ Item └ GF ■ FF 9 ├ Chart ├ Character ├ Item └ Materia ■ FF10 ├ Chart ├ Character ├ Item └ Materia ■ FF10-2 ├ Chart ├ Character ├ Item └ Materia ■bbs ■Top Update 取得中です。
https://w.atwiki.jp/touhoukashi/pages/1402.html
【登録タグ E Rebirth(Silver Forest) Silver Forest Silver Forest 2006-2012 BESTⅠ アキ 広有射怪鳥事 ~ Till When? 曲】 【注意】 現在、このページはJavaScriptの利用が一時制限されています。この表示状態ではトラック情報が正しく表示されません。 この問題は、以下のいずれかが原因となっています。 ページがAMP表示となっている ウィキ内検索からページを表示している これを解決するには、こちらをクリックし、ページを通常表示にしてください。 /** General styling **/ @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight 350; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/10/NotoSansCJKjp-DemiLight.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/9/NotoSansCJKjp-DemiLight.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/8/NotoSansCJKjp-DemiLight.ttf) format( truetype ); } @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight bold; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/13/NotoSansCJKjp-Medium.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/12/NotoSansCJKjp-Medium.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/11/NotoSansCJKjp-Medium.ttf) format( truetype ); } rt { font-family Arial, Verdana, Helvetica, sans-serif; } /** Main table styling **/ #trackinfo, #lyrics { font-family Noto Sans JP , sans-serif; font-weight 350; } .track_number { font-family Rockwell; font-weight bold; } .track_number after { content . ; } #track_args, .amp_text { display none; } #trackinfo { position relative; float right; margin 0 0 1em 1em; padding 0.3em; width 320px; border-collapse separate; border-radius 5px; border-spacing 0; background-color #F9F9F9; font-size 90%; line-height 1.4em; } #trackinfo th { white-space nowrap; } #trackinfo th, #trackinfo td { border none !important; } #trackinfo thead th { background-color #D8D8D8; box-shadow 0 -3px #F9F9F9 inset; padding 4px 2.5em 7px; white-space normal; font-size 120%; text-align center; } .trackrow { background-color #F0F0F0; box-shadow 0 2px #F9F9F9 inset, 0 -2px #F9F9F9 inset; } #trackinfo td ul { margin 0; padding 0; list-style none; } #trackinfo li { line-height 16px; } #trackinfo li nth-of-type(n+2) { margin-top 6px; } #trackinfo dl { margin 0; } #trackinfo dt { font-size small; font-weight bold; } #trackinfo dd { margin-left 1.2em; } #trackinfo dd + dt { margin-top .5em; } #trackinfo_help { position absolute; top 3px; right 8px; font-size 80%; } /** Media styling **/ #trackinfo .media th { background-color #D8D8D8; padding 4px 0; font-size 95%; text-align center; } .media td { padding 0 2px; } .media iframe nth-of-type(n+2) { margin-top 0.3em; } .youtube + .nicovideo, .youtube + .soundcloud, .nicovideo + .soundcloud { margin-top 0.75em; } .media_section { display flex; align-items center; text-align center; } .media_section before, .media_section after { display block; flex-grow 1; content ; height 1px; } .media_section before { margin-right 0.5em; background linear-gradient(-90deg, #888, transparent); } .media_section after { margin-left 0.5em; background linear-gradient(90deg, #888, transparent); } .media_notice { color firebrick; font-size 77.5%; } /** Around track styling **/ .next-track { float right; } /** Infomation styling **/ #trackinfo .info_header th { padding .3em .5em; background-color #D8D8D8; font-size 95%; } #trackinfo .infomation_show_btn_wrapper { float right; font-size 12px; user-select none; } #trackinfo .infomation_show_btn { cursor pointer; } #trackinfo .info_content td { padding 0 0 0 5px; height 0; transition .3s; } #trackinfo .info_content ul { padding 0; margin 0; max-height 0; list-style initial; transition .3s; } #trackinfo .info_content li { opacity 0; visibility hidden; margin 0 0 0 1.5em; transition .3s, opacity .2s; } #trackinfo .info_content.infomation_show td { padding 5px; height 100%; } #trackinfo .info_content.infomation_show ul { padding 5px 0; max-height 50em; } #trackinfo .info_content.infomation_show li { opacity 1; visibility visible; } #trackinfo .info_content.infomation_show li nth-of-type(n+2) { margin-top 10px; } /** Lyrics styling **/ #lyrics { font-size 1.06em; line-height 1.6em; } .not_in_card, .inaudible { display inline; position relative; } .not_in_card { border-bottom dashed 1px #D0D0D0; } .tooltip { display flex; visibility hidden; position absolute; top -42.5px; left 0; width 275px; min-height 20px; max-height 100px; padding 10px; border-radius 5px; background-color #555; align-items center; color #FFF; font-size 85%; line-height 20px; text-align center; white-space nowrap; opacity 0; transition 0.7s; -webkit-user-select none; -moz-user-select none; -ms-user-select none; user-select none; } .inaudible .tooltip { top -68.5px; } span hover + .tooltip { visibility visible; top -47.5px; opacity 0.8; transition 0.3s; } .inaudible span hover + .tooltip { top -73.5px; } .not_in_card span.hide { top -42.5px; opacity 0; transition 0.7s; } .inaudible .img { display inline-block; width 3.45em; height 1.25em; margin-right 4px; margin-bottom -3.5px; margin-left 4px; background-image url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2971/7/Inaudible.png); background-size contain; background-repeat no-repeat; } .not_in_card after, .inaudible .img after { content ; visibility hidden; position absolute; top -8.5px; left 42.5%; border-width 5px; border-style solid; border-color #555 transparent transparent transparent; opacity 0; transition 0.7s; } .not_in_card hover after, .inaudible .img hover after { content ; visibility visible; top -13.5px; left 42.5%; opacity 0.8; transition 0.3s; } .not_in_card after { top -2.5px; left 50%; } .not_in_card hover after { top -7.5px; left 50%; } .not_in_card.hide after { visibility hidden; top -2.5px; opacity 0; transition 0.7s; } /** For mobile device styling **/ .uk-overflow-container { display inline; } #trackinfo.mobile { display table; float none; width 100%; margin auto; margin-bottom 1em; } #trackinfo.mobile th { text-transform none; } #trackinfo.mobile tbody tr not(.media) th { text-align left; background-color unset; } #trackinfo.mobile td { white-space normal; } document.addEventListener( DOMContentLoaded , function() { use strict ; const headers = { title アルバム別曲名 , album アルバム , circle サークル , vocal Vocal , lyric Lyric , chorus Chorus , narrator Narration , rap Rap , voice Voice , whistle Whistle (口笛) , translate Translation (翻訳) , arrange Arrange , artist Artist , bass Bass , cajon Cajon (カホン) , drum Drum , guitar Guitar , keyboard Keyboard , mc MC , mix Mix , piano Piano , sax Sax , strings Strings , synthesizer Synthesizer , trumpet Trumpet , violin Violin , original 原曲 , image_song イメージ曲 }; const rPagename = /(?=^|.*